Week03_보안 개념과 암호 기초

Week 03 · 보안 개념과 암호 기초

Day 1 · 보안의 기본 개념

1. 보안이란 결국 무엇을 지키는 것인가

보안은 "해커를 막는 기술"이 아니라 정보가 가져야 할 성질을 지키는 일이다. 그 성질을 정리한 것이 CIA 3요소다.

택배에 비유해 보자. 택배 상자 안을 남이 못 보게 하는 것(기밀성), 내용물이 바뀌지 않게 하는 것(무결성), 약속한 날 실제로 도착하게 하는 것(가용성). 셋 중 하나라도 깨지면 "안전한 배송"이 아니다.

시험에서는 어떤 사건이 어느 요소를 깨는지를 고르게 하는 문제가 가장 많다. 그러니 각 요소를 "사건"과 짝지어 기억하자.

2. CIA 3요소

요소 의미 깨뜨리는 공격 지키는 기술
기밀성 (Confidentiality) 허가된 사람만 볼 수 있음 가로채기(스니핑, 도청) 암호화, 접근통제
무결성 (Integrity) 허가 없이 변경되지 않음 변조 해시, MAC, 전자서명
가용성 (Availability) 필요할 때 사용 가능 차단(DoS/DDoS) 이중화, 백업, 부하분산

실생활 예시로 감 잡기

사건 깨진 요소 이유
카페 와이파이에서 남의 로그인 정보를 훔쳐봄 기밀성 보면 안 될 사람이 봤다
송금 금액 10만 원을 100만 원으로 바꿈 무결성 내용이 허가 없이 바뀌었다
쇼핑몰이 DDoS로 하루 종일 접속 불가 가용성 필요할 때 쓸 수 없다
랜섬웨어가 파일을 암호화해 못 열게 함 가용성 (+무결성) 내 파일을 쓸 수 없다
직원이 고객 명단을 USB로 가져감 기밀성 허가 범위 밖으로 유출
정전으로 서버가 꺼짐 가용성 공격이 아니어도 가용성 사고다
랜섬웨어 = 가용성

랜섬웨어는 데이터를 "훔쳐 가는" 공격이 아니라 못 쓰게 만드는 공격이라 기본적으로 가용성 침해로 분류한다. 요즘은 훔쳐 간 뒤 공개 협박(이중 갈취)도 하므로 기밀성까지 깨지기도 한다.

3. 추가 보안 요소 (CIA 다음 단골)

요소 한 줄 정의 비유 대표 기술
인증성 (Authenticity) 상대·메시지가 진짜인가 신분증 확인 패스워드, 인증서, MAC
책임추적성 (Accountability) 누가 무엇을 했는지 추적 가능 CCTV + 출입 기록부 감사 로그, 고유 계정
부인방지 (Non-repudiation) 했던 일을 안 했다고 못 함 인감도장 찍은 계약서 전자서명, 타임스탬프

4. 위협의 4가지 유형

정보가 A에서 B로 흐른다고 할 때, 공격자가 끼어드는 방식은 4가지로 정리된다.

정상:     A ───────────────▶ B

차단:     A ─────── ✕         B   (흐름이 끊김)

가로채기: A ───────┬───────▶ B
                   └──▶ 공격자    (몰래 엿봄)

변조:     A ──▶ 공격자 ──(수정)──▶ B

위조:          공격자 ──(A인 척)──▶ B
유형 영어 깨지는 요소 예
차단 Interruption 가용성 DoS, 케이블 절단
가로채기 Interception 기밀성 스니핑, 도청
변조(수정) Modification 무결성 중간자 공격으로 내용 수정
위조 Fabrication 인증(성) A인 척 가짜 메시지 전송

소극적 공격 vs 적극적 공격

구분 소극적(수동적) 공격 적극적(능동적) 공격
하는 일 보기만 함 데이터를 바꾸거나 끼어듦
예 도청, 트래픽 분석 변조, 위조, 차단, 재전송(Replay)
탐지 어렵다 (흔적이 거의 없음) 상대적으로 탐지 가능
대책 중심 예방 (암호화) 탐지 + 복구
트래픽 분석

내용을 못 읽어도 "누가, 언제, 얼마나 자주, 얼마나 크게" 통신하는지만으로 정보를 얻는 공격. 암호화해도 막기 어렵다. 소극적 공격이다.

5. 보안 원칙

원칙 의미 예
최소 권한 (Least Privilege) 일에 필요한 최소한의 권한만 일반 업무는 관리자 계정 말고 일반 계정으로
직무 분리 (Separation of Duties) 중요한 일을 한 사람이 처음부터 끝까지 못 하게 송금 요청자 ≠ 송금 승인자
알 필요성 (Need-to-know) 권한이 있어도 업무상 필요한 정보만 같은 비밀등급이라도 담당 사건 자료만 열람
심층 방어 (Defense in Depth) 여러 겹 방어. 한 겹 뚫려도 다음 겹 방화벽 + IPS + 백신 + 암호화 + 교육
Fail-safe 기본값 명시적으로 허용 안 된 건 기본 거부 방화벽 마지막 규칙 "All Deny"
완전한 중재 (Complete Mediation) 모든 접근마다 권한 확인 처음 한 번만 확인하고 캐시 X
개방 설계 (Open Design) 설계 비밀에 의존하지 않음 케르크호프스 원칙과 같은 맥락
단순성 (Economy of Mechanism) 단순할수록 검증이 쉽고 안전 복잡한 커스텀 암호 X
권한 분리 (Separation of Privilege) 여러 조건이 동시에 만족해야 허용 금고 열쇠 2개 (이중 통제)
직무 순환 (Job Rotation) 담당자를 주기적으로 교체 숨겨진 부정 발견, 공모 방지
강제 휴가 (Mandatory Vacation) 휴가 중 대체자가 업무 점검 은행 직원 연속 휴가
최소 권한 vs 알 필요성

  • 최소 권한: 무엇을 할 수 있나 (권한, 행위)의 최소화
  • 알 필요성: 무엇을 볼 수 있나 (정보 접근)의 최소화
    둘 다 "필요한 만큼만"이지만, 시험에서 "정보 열람"을 강조하면 Need-to-know다.

Fail-safe vs Fail-secure (용어 주의)

  • 정보보안에서 Fail-safe default: 실패·불명확하면 접근 거부 (안전한 쪽으로)
  • 물리보안에서 Fail-safe 도어: 정전 시 문이 열림 (사람 생명 우선), Fail-secure 도어: 정전 시 잠김 (자산 보호 우선)
    시험 문맥이 "접근통제/시스템"이면 거의 항상 기본 거부 의미다.

6. 접근의 4단계: 식별 → 인증 → 인가 → 책임추적

회사 출입을 생각해 보자.

  1. 식별(Identification): "저 홍길동입니다" — 이름이나 사번을 주장한다. (ID 입력)
  2. 인증(Authentication): 신분증·지문으로 그 주장이 사실인지 확인한다. (비밀번호 입력)
  3. 인가(Authorization): 확인된 홍길동이 어느 층에 들어갈 수 있는지 권한을 준다.
  4. 책임추적(Accountability): 출입 기록이 남아 나중에 누가 언제 어디에 갔는지 추적한다.
flowchart LR
    A["식별
나는 누구다(ID)"] --> B["인증
증명(비밀번호)"] B --> C["인가
권한 부여"] C --> D["책임추적
로그 기록"]
순서 함정

  • 인증 없이 인가 없다. 인증이 먼저, 인가가 나중.
  • 식별은 "주장", 인증은 "검증". ID는 식별, 비밀번호는 인증.
  • "AAA"는 Authentication, Authorization, Accounting(인증·인가·과금/기록). 네트워크 장비 접근통제(RADIUS, TACACS+)에서 쓰는 말.

7. 실습 · 사건 분류 연습

아래 사건이 깨뜨린 요소를 먼저 스스로 적고 답을 확인하자.

# 사건 답
1 공격자가 은행 서버인 척 가짜 사이트를 만들어 로그인 유도 인증(위조)
2 내부자가 급여 테이블의 자기 연봉을 수정 무결성(변조)
3 직원 5명이 admin 계정 하나를 같이 씀 책임추적성
4 이메일 계약 후 "그런 메일 보낸 적 없다"고 주장 부인방지
5 패킷을 캡처해 암호화된 통신량 패턴을 분석 기밀성(소극적 공격·트래픽 분석)
6 로그인 패킷을 녹화해 나중에 그대로 다시 보냄 인증 (재전송 공격, 적극적)
7 홍수로 전산실 침수 가용성

⚠️ 시험 함정

기출 포인트

확인 문제

Q1. 다음 중 소극적(수동적) 공격에 해당하는 것은?
① 재전송 공격 ② 트래픽 분석 ③ 메시지 변조 ④ 서비스 거부

Q2. "송금 요청을 입력한 직원은 그 송금을 승인할 수 없다"는 규칙이 반영한 원칙은?
① 최소 권한 ② 알 필요성 ③ 직무 분리 ④ 심층 방어

Q3. 위협 유형과 침해되는 보안 요소의 연결로 옳지 않은 것은?
① 차단 - 가용성 ② 가로채기 - 기밀성 ③ 변조 - 무결성 ④ 위조 - 가용성

Q4. 사용자가 ID를 입력하는 단계와, 시스템이 비밀번호로 이를 확인하는 단계를 순서대로 바르게 나타낸 것은?
① 인증 → 식별 ② 식별 → 인증 ③ 인가 → 인증 ④ 식별 → 인가

Q5. 여러 직원이 하나의 관리자 계정을 공유할 때 가장 직접적으로 약해지는 보안 요소는?
① 가용성 ② 책임추적성 ③ 기밀성 ④ 무결성


Day 2 · 인증 기초

1. 인증이란

인증은 "당신이 주장하는 그 사람이 맞는지" 확인하는 과정이다. 은행 창구 직원이 신분증 사진과 얼굴을 비교하는 것과 같다.

확인하는 근거는 크게 세 종류다. 아는 것, 가진 것, 그 사람 자체. 이걸 인증 3요소(유형)라고 한다. 여기에 행동 습관(행위)이나 위치를 더하기도 한다.

2. 인증 요소(유형)

유형 영어 예 약점
지식 기반 Something you know 비밀번호, PIN, 보안 질문 답 잊어버림, 추측·유출
소유 기반 Something you have OTP 토큰, 스마트카드, 휴대폰, 보안카드, 인증서 파일 분실·도난, 복제
존재(생체) 기반 Something you are 지문, 홍채, 망막, 얼굴, 정맥 비용, 오류율, 바꿀 수 없음
행위 기반 Something you do 서명 패턴, 음성*, 타자 리듬, 걸음걸이 상태에 따라 변동
(위치 기반) Somewhere you are GPS, 접속 IP 대역 우회 가능, 보조 수단

* 음성은 성대 구조(신체)와 말하는 습관(행위)이 섞여 있어 교재에 따라 분류가 다르다. 생체 인증을 신체적 특성(지문·홍채·얼굴·정맥)과 행위적 특성(서명·타자·걸음걸이)으로 나누기도 한다.

생체정보는 "바꿀 수 없는 비밀번호"

비밀번호는 유출되면 바꾸면 되지만, 지문이 유출되면 평생 바꿀 수 없다. 그래서 생체정보는 원본 대신 특징점(템플릿) 만 저장하고, 가능하면 기기 안(보안 영역)에만 둔다.

3. 다중요소 인증(MFA) 판단법

핵심 규칙: 서로 다른 "유형"이 2개 이상이어야 2요소다. 개수가 아니라 종류를 센다.

비밀번호 + 지문      → 지식 + 존재  → ✅ 2요소
비밀번호 + 보안질문  → 지식 + 지식  → ❌ 1요소 (2단계일 뿐)
지문 + 홍채          → 존재 + 존재  → ❌ 1요소

연습 — 몇 요소인가? (답을 가리고 풀어 보기)

# 조합 답
1 ATM 카드 + 비밀번호 4자리 2요소 (소유 + 지식)
2 비밀번호 + PIN 1요소 (지식 + 지식)
3 스마트폰 OTP 앱 6자리 + 비밀번호 2요소 (소유 + 지식)
4 지문 + 얼굴 인식 1요소 (존재 + 존재)
5 사원증(스마트카드) + 정맥 인식 2요소 (소유 + 존재)
6 비밀번호 + 이메일로 받은 인증 링크 2요소로 보는 게 일반적 (지식 + 메일함 접근=소유)
7 인증서 파일 + 인증서 비밀번호 + 지문 3요소 (소유 + 지식 + 존재)
2단계(2-Step) ≠ 2요소(2-Factor)

"단계"는 절차를 몇 번 거치느냐, "요소"는 근거의 종류가 몇 개냐. 비밀번호 입력 후 보안질문을 또 묻는 건 2단계 1요소다.

4. 생체인증과 오류율 (FAR · FRR · CER)

생체인증은 비밀번호처럼 "일치/불일치"가 딱 떨어지지 않는다. 지문은 찍을 때마다 조금씩 다르므로, "얼마나 비슷하면 통과시킬지" 기준(임계값) 을 정해야 한다.

용어 뜻 다른 이름 결과
FRR (False Rejection Rate) 본인인데 거부 1종 오류, 오거부율 사용자 불편
FAR (False Acceptance Rate) 남인데 수락 2종 오류, 오수락률 보안 사고 (더 위험)
CER / EER FAR = FRR 되는 지점 교차오류율 / 동일오류율 낮을수록 정확
 오류율
   ^
   |\                    /
   | \  FAR        FRR  /
   |  \                /
   |   \              /
   |    \            /
   |     \          /
   |      \        /
   |       \      /
   |        \    /
   |.........\  /........
   |          \/   <- CER(EER)
   |          /\
   |         /  \
   |        /    \
   +---------------------->
    관대(느슨)      엄격
        판정 기준(임계값)

생체인증 기술이 갖춰야 할 특성

특성 뜻
보편성 누구나 가지고 있다
유일성(고유성) 사람마다 다르다
영속성(지속성) 시간이 지나도 잘 변하지 않는다
획득성(수집성) 센서로 쉽게 측정된다
정확성 인식 성능이 높다
수용성 사용자가 거부감 없이 쓴다 (망막 스캔은 거부감↑)
기만 방지 가짜(실리콘 지문, 사진)로 속이기 어렵다

5. OTP (One-Time Password)

OTP는 한 번 쓰면 버리는 비밀번호다. 훔쳐 가도 이미 쓴 값이라 재사용할 수 없어서 재전송 공격과 비밀번호 유출에 강하다.

원리는 간단하다. 사용자 단말과 서버가 같은 비밀값(seed) 을 나눠 갖고, 같은 재료(시간·횟수·질문)를 넣어 같은 계산을 한다. 결과가 같으면 통과.

sequenceDiagram
    participant U as 사용자 OTP 앱
    participant S as 서버
    Note over U,S: 미리 같은 비밀값(seed) 공유
    U->>U: OTP = f(seed, 현재시간)
    U->>S: 6자리 OTP 입력
    S->>S: f(seed, 현재시간) 직접 계산
    S-->>U: 값이 같으면 인증 성공
방식 재료 장점 단점 표준 예
시간 동기화 현재 시간 (예: 30초 단위) 사용 간편 단말·서버 시간 오차, 유효시간 내 재사용 위험 TOTP (RFC 6238)
이벤트(카운터) 동기화 버튼 누른 횟수 시간 오차 무관 버튼만 눌러 카운터 불일치 HOTP (RFC 4226)
질의-응답 (비동기) 서버가 준 난수(Challenge) 동기화 불필요 사용자가 값을 입력해야 해서 번거로움 Challenge-Response
조합형 시간 + 이벤트 두 방식 보완 구현 복잡
S/KEY

해시를 여러 번 반복한 해시 체인으로 OTP 목록을 만들고, 역순으로 하나씩 쓰는 방식. 서버는 직전 값만 알면 "이번 값을 한 번 해시하면 직전 값이 되는지"로 검증한다. 해시의 일방향성 덕분에 지난 값으로 다음 값을 알 수 없다.

6. 패스워드 공격 기초

공격 방법 대응
무차별 대입 (Brute Force) 가능한 모든 조합 시도 계정 잠금, 길이·복잡도 증가
사전 공격 (Dictionary) 자주 쓰는 단어·비밀번호 목록 대입 사전 단어 금지, 복잡도 정책
레인보우 테이블 해시값↔평문 대응표를 미리 계산해 두고 조회 솔트(Salt)
크리덴셜 스터핑 다른 사이트에서 유출된 ID/PW를 그대로 대입 MFA, 사이트별 다른 비밀번호
패스워드 스프레이 흔한 비밀번호 1개를 여러 계정에 시도 (잠금 회피) 이상 로그인 탐지, MFA
사회공학 · 숄더서핑 · 키로거 속이기, 어깨너머 보기, 키 입력 가로채기 교육, 가림막, 백신

솔트(Salt)가 왜 레인보우 테이블을 막나?

솔트 없음:  hash("1234")          → 모든 사용자가 같은 값
            → 미리 만든 표에서 바로 찾음

솔트 있음:  hash("x7Qp" + "1234") → 사용자마다 다른 값
            hash("a91K" + "1234") → 또 다른 값
            → 솔트마다 표를 새로 만들어야 함 = 사실상 불가

⚠️ 시험 함정

기출 포인트

확인 문제

Q1. 다음 중 2요소 인증(2FA)에 해당하는 것은?
① 비밀번호 + 보안 질문 ② 지문 + 홍채 ③ 스마트카드 + PIN ④ PIN + 비밀번호

Q2. 생체인증에서 등록되지 않은 타인을 본인으로 잘못 수락하는 비율은?
① FRR ② FAR ③ CER ④ EER

Q3. 생체인증 시스템의 판정 기준을 더 엄격하게 조정했을 때 일반적인 변화로 옳은 것은?
① FAR 증가, FRR 감소 ② FAR 감소, FRR 증가 ③ FAR·FRR 모두 감소 ④ CER 자체가 낮아진다

Q4. 레인보우 테이블 공격을 무력화하는 데 가장 효과적인 방법은?
① 비밀번호 해시값을 별도 서버에 저장 ② 사용자별 솔트를 추가해 해시 ③ 로그인 실패 시 계정 잠금 ④ 해시 대신 Base64 인코딩 사용

Q5. OTP 생성 방식에 대한 설명으로 옳지 않은 것은?
① 시간 동기화 방식은 단말과 서버의 시각이 맞아야 한다
② 이벤트 동기화 방식은 생성 횟수(카운터)를 기준으로 한다
③ 질의-응답 방식은 서버가 보낸 난수를 이용해 응답값을 만든다
④ 질의-응답 방식은 단말과 서버의 카운터 동기화가 반드시 필요하다


Day 3 · 암호 기본 용어

1. 암호의 기본 그림

암호는 자물쇠 달린 상자와 같다. 편지(평문)를 상자에 넣고 잠그면(암호화) 아무도 못 읽는 상자(암호문)가 된다. 열쇠(키)를 가진 사람만 열어서(복호화) 편지를 꺼낼 수 있다.

중요한 점: 자물쇠의 구조(알고리즘)는 누구나 알아도 된다. 열쇠(키)만 지키면 된다. 이게 오늘 배울 케르크호프스 원칙이다.

         키(K)                     키(K')
           │                         │
           ▼                         ▼
 평문 ──▶ [암호화 E] ──▶ 암호문 ──▶ [복호화 D] ──▶ 평문
 (P)                     (C)                      (P)

   C = E(K, P)          P = D(K', C)
   대칭키: K = K'      공개키: K ≠ K'
용어 영어 뜻
평문 Plaintext 원래 읽을 수 있는 메시지
암호문 Ciphertext 암호화되어 읽을 수 없는 메시지
암호화 Encryption 평문 → 암호문
복호화 Decryption 암호문 → 평문 (키를 가진 정당한 사람이)
키 Key 암·복호화에 쓰는 비밀 값
키 공간 Key space 가능한 키의 전체 개수 (n비트 키 → 2ⁿ개)
암호 해독 Cryptanalysis 키 없이 평문이나 키를 알아내려는 시도
암호 시스템 Cryptosystem 알고리즘 + 키 + 평문·암호문 공간 전체
복호화 vs 해독

복호화는 키를 가진 사람이 정상적으로 푸는 것, 해독(크래킹) 은 키 없이 깨는 것. 시험 보기에서 섞여 나온다.

2. 고전 암호 — 치환과 전치

현대 암호도 결국 이 두 기술을 조합한다. 직접 손으로 해 보면 개념이 확실해진다.

구분 치환 (Substitution) 전치 (Transposition)
하는 일 글자를 다른 글자로 바꿈 글자는 그대로, 위치(순서)를 섞음
비유 암호표 보고 글자 바꿔 쓰기 카드 섞기
예 카이사르, 비즈네르, 플레이페어 스키테일, 레일펜스, 열 전치
글자 빈도 단일 치환은 빈도가 그대로 남음 글자 빈도가 완전히 그대로 남음

실습 ① 카이사르 암호 (시프트 3)

알파벳을 정해진 칸(키)만큼 밀어 쓰는 단일 문자 치환이다.

평문 알파벳: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
암호 알파벳: D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

HELLO를 키 3으로 암호화:

평문 H E L L O
+3 K H O O R

→ 암호문 KHOOR. 복호화는 반대로 3칸 당기면 된다.

실습 ② 비즈네르 암호 (키 KEY)

글자마다 밀어 주는 칸 수가 키워드에 따라 바뀌는 다중 문자 치환이다. A=0, B=1, …, Z=25로 놓고 더한 뒤 26으로 나눈 나머지를 쓴다.

평문 H(7) E(4) L(11) L(11) O(14)
키 반복 K(10) E(4) Y(24) K(10) E(4)
합 mod 26 17 8 35→9 21 18
암호문 R I J V S

→ HELLO → RIJVS

실습 ③ 전치 암호 (레일펜스, 2줄)

SECURITY를 지그재그로 두 줄에 나눠 쓴 뒤, 윗줄 → 아랫줄 순서로 읽는다.

위:  S . C . R . T .
아래: . E . U . I . Y

→ 윗줄 SCRT + 아랫줄 EUIY = SCRTEUIY

일회용 패드 (One-Time Pad, 버냄 암호)

평문과 같은 길이의 완전 무작위 키를 딱 한 번만 쓰고 XOR하면, 이론적으로 절대 해독 불가능(완전 비밀성) 하다(섀넌 증명). 대신 키를 평문만큼 만들어 미리 안전하게 전달해야 해서 현실적으로 쓰기 어렵다.
⚠️ 인증의 OTP(One-Time Password)와 이름이 비슷하니 문맥으로 구분하자.

3. 섀넌의 현대 암호 설계 원리 — 혼돈과 확산

원리 의미 쉽게 말하면 구현 수단
혼돈 (Confusion) 키와 암호문의 관계를 복잡하게 암호문을 봐도 키를 짐작 못 하게 치환 (S-Box)
확산 (Diffusion) 평문 1비트 변화가 암호문 여러 비트에 퍼짐 평문의 통계적 특징을 흩어 버림 전치·순열 (P-Box), 섞기

4. 케르크호프스 원칙 (Kerckhoffs's Principle)

암호 시스템은 키를 제외한 모든 것이 공개되어도 안전해야 한다.

5. 암호 공격의 4가지 유형

공격자가 무엇을 손에 쥐고 있느냐로 나눈다. 아래로 갈수록 공격자에게 정보가 많다(=공격자에게 유리).

순 공격 공격자가 가진 것 비유
1 암호문 단독 (COA) 암호문만 도청한 암호 편지 뭉치만 있음
2 기지 평문 (KPA) 평문-암호문 쌍 몇 개 (고를 수는 없음) 우연히 원문과 암호문을 같이 입수
3 선택 평문 (CPA) 원하는 평문을 넣어 암호문을 얻을 수 있음 암호 기계를 잠깐 빌려 써 봄
4 선택 암호문 (CCA) 원하는 암호문을 넣어 평문을 얻을 수 있음 복호 기계를 잠깐 빌려 써 봄
공격자 정보량  적음 ───────────────────────▶ 많음
              COA  →  KPA  →  CPA  →  CCA
방어 입장 난이도 쉬움 ─────────────────────▶ 어려움
(CCA에도 안전한 암호가 가장 강한 암호)

6. 실습 · 공격 유형 맞히기

상황 공격 유형
도청한 암호문만으로 빈도 분석을 함 암호문 단독
회사가 매일 "Good morning"으로 시작하는 암호 메일을 보낸다는 걸 알고 분석 기지 평문
공격자가 피해자 서버에 원하는 문자열을 넣어 암호화 결과를 받아 봄 선택 평문
공격자가 조작한 암호문을 서버에 보내 복호 결과(또는 오류 반응)를 관찰 선택 암호문

⚠️ 시험 함정

기출 포인트

확인 문제

Q1. 키 3인 카이사르 암호로 CAT를 암호화한 결과는?
① FDW ② ZXQ ③ DBU ④ FDX

Q2. 평문의 한 비트 변화가 암호문의 여러 비트에 영향을 주도록 하여 평문의 통계적 성질을 감추는 원리는?
① 혼돈 ② 확산 ③ 치환 ④ 케르크호프스 원칙

Q3. 공격자가 임의로 고른 평문을 암호화 장치에 넣어 대응하는 암호문을 얻을 수 있는 상황의 공격은?
① 암호문 단독 공격 ② 기지 평문 공격 ③ 선택 평문 공격 ④ 선택 암호문 공격

Q4. 케르크호프스 원칙에 대한 설명으로 옳은 것은?
① 암호 알고리즘을 비공개로 해야 안전하다
② 키를 제외한 시스템의 모든 것이 공개되어도 안전해야 한다
③ 키 길이는 평문 길이와 같아야 한다
④ 암호문은 평문보다 길어야 한다

Q5. 다음 중 전치(Transposition) 암호에 해당하는 것은?
① 카이사르 암호 ② 비즈네르 암호 ③ 스키테일 암호 ④ 플레이페어 암호


Day 4 · 대칭키 vs 공개키 (큰 그림)

1. 먼저 XOR — 현대 암호의 기본 연산

XOR(⊕, 배타적 논리합)은 두 비트가 다르면 1, 같으면 0이다.

A B A ⊕ B
0 0 0
0 1 1
1 0 1
1 1 0

암호에서 XOR이 사랑받는 이유는 같은 값을 두 번 XOR하면 원래대로 돌아오기 때문이다.

(P ⊕ K) ⊕ K = P

실습 — 글자 'H'를 키로 암호화·복호화

'H' (0x48) = 0 1 0 0 1 0 0 0   ← 평문
키         = 1 0 1 0 1 0 1 0
           ─────────────────  XOR
암호문      = 1 1 1 0 0 0 1 0

암호문      = 1 1 1 0 0 0 1 0
키         = 1 0 1 0 1 0 1 0
           ─────────────────  XOR
복호 결과   = 0 1 0 0 1 0 0 0   ← 다시 'H'

2. 블록 암호 vs 스트림 암호

대칭키 암호는 데이터를 처리하는 단위에 따라 둘로 나뉜다.

블록 암호: 일정 크기로 잘라 덩어리째 암호화
 [블록1 128bit][블록2 128bit][블록3 + 패딩]
      │             │              │
    [AES]         [AES]          [AES]

스트림 암호: 키스트림을 만들어 1비트(1바이트)씩 XOR
 평문:     1 0 1 1 0 0 1 ...
 키스트림: 0 1 1 0 1 0 1 ...  (난수 발생기가 계속 생성)
 암호문:   1 1 0 1 1 0 0 ...
구분 블록 암호 스트림 암호
단위 고정 크기 블록 (64·128비트) 비트/바이트 단위
원리 치환·전치를 여러 라운드 반복 키스트림과 XOR
속도 상대적으로 느림 빠름, 하드웨어 구현 간단
오류 전파 모드에 따라 블록 단위로 퍼질 수 있음 비트 오류가 해당 비트에만 영향
주 용도 파일·DB·통신 범용 무선 통신, 실시간 음성·영상
예 DES, 3DES, AES, SEED, ARIA, LEA RC4, ChaCha20, LFSR 기반

3. 대칭키 암호 — 같은 열쇠 두 개

대칭키는 집 열쇠를 복사해서 나눠 갖는 것과 같다. 잠글 때와 열 때 같은 열쇠를 쓴다.

4. 공개키 암호 — 우체통 비유

공개키는 우체통과 같다. 투입구(공개키)는 누구에게나 열려 있어 아무나 편지를 넣을(암호화) 수 있지만, 꺼내는 열쇠(개인키)는 주인만 가지고 있다.

알고리즘 기반 난제 주 용도
RSA 큰 수의 소인수분해 암호화, 전자서명
Diffie-Hellman 이산대수 키 교환(합의) 전용
ElGamal 이산대수 암호화, 서명
DSA 이산대수 전자서명 전용
ECC (타원곡선) 타원곡선 이산대수 짧은 키로 RSA와 같은 강도 → 모바일·IoT

5. 대칭키 vs 공개키 비교

구분 대칭키 공개키(비대칭)
키 암·복호화 같은 키 공개키 + 개인키 쌍
속도 빠름 느림 (수백~수천 배)
키 개수 (n명) n(n-1)/2 2n
문제점 키 분배, 키 관리 느림, 공개키가 진짜 그 사람 것인지 확인 필요(→ PKI)
부인방지 불가 (둘 다 같은 키) 가능 (개인키는 본인만)
예 DES, AES, SEED, ARIA, LEA RSA, ECC, ElGamal, DSA, DH
용도 대량 데이터 암호화 키 교환·분배, 전자서명

6. 실습 · 키 개수 계산

대칭키: n명 중 2명씩 짝마다 키 1개 → 조합 nC2 = n(n-1)/2
공개키: 사람마다 2개(공개키 + 개인키) → 2n (공개키만 세면 n개)

인원 n 대칭키 n(n-1)/2 공개키 2n
5명 5×4/2 = 10 10
10명 10×9/2 = 45 20
100명 100×99/2 = 4,950 200
1,000명 1000×999/2 = 499,500 2,000
함정 체크

문제에서 "필요한 키의 총 개수"인지 "공개키 개수"인지 꼭 확인. 공개키 방식에서 공개키만 묻으면 n개다. 또 "새로 1명이 들어올 때 추가되는 대칭키 수"는 기존 인원 수 n개다.

7. 하이브리드 암호 — 둘의 장점만

현실에서는 공개키로 대칭키를 안전하게 전달하고, 실제 데이터는 빠른 대칭키로 암호화한다. 공개키로 "열쇠를 담은 작은 금고"만 보내는 셈이다.

sequenceDiagram
    participant C as 클라이언트(브라우저)
    participant S as 서버
    S->>C: 1. 서버 인증서(서버 공개키 포함)
    C->>C: 2. 인증서 검증, 랜덤 세션키 생성
    C->>S: 3. 세션키를 서버 공개키로 암호화해 전송
    S->>S: 4. 서버 개인키로 복호화 → 세션키 획득
    Note over C,S: 이제 양쪽이 같은 세션키 보유
    C->>S: 5. 데이터는 세션키(AES 등)로 암호화
    S->>C: 5. 응답도 세션키로 암호화

8. 공개키 사용 방향 (★ 가장 헷갈리는 부분)

같은 키 쌍이라도 목적에 따라 누구의 어떤 키를 쓰는지가 정반대다.

[기밀성] "B만 읽게 하고 싶다"
  A ──(B의 공개키로 암호화)──▶ 암호문 ──(B의 개인키로 복호화)──▶ B
     우체통에 넣기(누구나)          열쇠로 꺼내기(B만)

[전자서명] "A가 보낸 게 맞다고 증명하고 싶다"
  A ──(A의 개인키로 서명)──▶ 서명 ──(A의 공개키로 검증)──▶ 누구나
     인감도장 찍기(A만)            인감증명과 대조(누구나)
목적 잠그는(만드는) 키 여는(확인하는) 키 얻는 것
기밀성 수신자 공개키 수신자 개인키 수신자만 읽음
전자서명 송신자 개인키 송신자 공개키 인증, 무결성, 부인방지
외우는 법

"비밀은 받는 사람 것, 서명은 보내는 사람 것." 개인키는 항상 그 키의 주인이 하는 행동(내 편지 열기, 내 도장 찍기)에 쓰인다.

⚠️ 시험 함정

기출 포인트

확인 문제

Q1. 20명이 서로 1:1 비밀 통신을 하려 할 때, 대칭키 방식과 공개키 방식에서 필요한 키의 총 개수로 옳은 것은?
① 190개, 40개 ② 380개, 20개 ③ 190개, 20개 ④ 400개, 40개

Q2. A가 B에게 B만 읽을 수 있는 메시지를 보내려 할 때 A가 사용해야 하는 키는?
① A의 개인키 ② A의 공개키 ③ B의 공개키 ④ B의 개인키

Q3. 다음 중 대칭키 암호 알고리즘이 아닌 것은?
① AES ② ARIA ③ ECC ④ SEED

Q4. 하이브리드 암호 방식을 사용하는 주된 이유로 가장 적절한 것은?
① 공개키 암호만으로는 무결성을 보장할 수 없어서
② 대칭키의 빠른 속도와 공개키의 안전한 키 분배 장점을 함께 얻기 위해
③ 대칭키 암호가 공개키 암호보다 안전성이 낮아서
④ 전자서명 없이 부인방지를 제공하기 위해

Q5. 평문 비트열 1100을 키 1010과 XOR한 암호문은?
① 1110 ② 0110 ③ 1000 ④ 0011


Day 5 · 해시 · MAC

1. 해시 함수란 — 데이터의 지문

해시 함수는 아무리 긴 데이터를 넣어도 정해진 길이의 짧은 값을 내놓는 함수다. 이 값을 해시값(메시지 다이제스트, 지문)이라 한다.

사람의 지문처럼, 데이터가 조금만 달라도 지문이 완전히 달라지고, 지문만 보고 그 사람을 "만들어 낼" 수는 없다. 그래서 무결성 확인에 쓴다.

"hello"               ─┐
"안녕하세요..."(1MB)   ─┼─▶ [SHA-256] ─▶ 항상 256비트(16진수 64자리)
영화 파일(4GB)         ─┘
                         ◀── 거꾸로 계산 불가 (일방향)

해시 함수의 기본 성질

성질 설명
고정 길이 출력 (압축) 입력 길이와 무관하게 출력 길이 일정
계산 용이성 해시값 계산은 빠르다
일방향성 해시값으로 입력을 거꾸로 구할 수 없다
쇄도 효과 입력이 조금만 바뀌어도 출력이 완전히 바뀐다

2. 실습 · 실제 해시값 보기

아래는 실제 SHA-256 계산 결과다. 글자 하나만 다른데 결과가 완전히 다르다.

SHA-256("hello")
= 2cf24dba5fb0a30e26e83b2ac5b9e29e
  1b161e5c1fa7425e73043362938b9824

SHA-256("Hello")   ← h를 대문자로
= 185f8db32271fe25f561a6fc938b2e26
  4306ec304eda518007d1764826381969

SHA-256("hellp")   ← 마지막 o를 p로
= fdd7585e08c4e2afd71dcabdb4636c89
  d557a3f42db9e2040c8bbd1708aa4ce7

MD5("hello")
= 5d41402abc4b2a76b9719d911017c592  (128비트 = 16진수 32자리)

3. 해시의 3가지 안전성 (★ 정확한 정의가 중요)

세 성질은 "공격자가 무엇을 받고, 무엇을 찾아야 하나"로 구분한다.

성질 공격자에게 주어진 것 찾기 어려워야 하는 것
역상 저항성 (Preimage) 해시값 h h(x) = h 인 입력 x
두 번째 역상 저항성 (2nd Preimage, 약한 충돌 저항성) 입력 x (와 그 해시) h(x') = h(x) 인 다른 x'
충돌 저항성 (Collision, 강한 충돌 저항성) 아무것도 없음 (자유롭게 고름) h(x) = h(x') 인 아무 쌍 (x, x')
역상 저항성:      ? ──▶ [H] ──▶ 2cf24...    (값만 보고 원문 찾기)

2번째 역상 저항성: "계약서 원본" ──▶ [H] ──▶ 7a1f...
                  ?(다른 문서) ──▶ [H] ──▶ 7a1f... (같은 값 만들기)

충돌 저항성:      ?, ? 아무 두 개 ──▶ [H] ──▶ 같은 값이면 성공

4. 해시 알고리즘 종류

알고리즘 출력 길이 상태
MD5 128비트 충돌 공격 실증 → 사용 금지
SHA-1 160비트 실제 충돌 발견(2017) → 사용 금지
SHA-2 (SHA-224/256/384/512) 224~512비트 현재 표준, 권장
SHA-3 (Keccak) 224~512비트 SHA-2와 다른 구조(스펀지), 권장
HAS-160 160비트 국산 (구형)
LSH 256/512비트 국산, 권장

5. 해시만으로는 왜 부족한가

해시는 "데이터가 바뀌었는지"만 알려 준다. 그런데 네트워크에서 공격자가 메시지와 해시값을 둘 다 바꿔치기하면?

A가 보냄:    "100만원" + H("100만원")
공격자 변조: "900만원" + H("900만원")   ← 해시는 누구나 계산 가능
B 검증:      H("900만원") 계산 = 첨부값 → "변조 없음"?! ✗

6. MAC (Message Authentication Code) — 키를 넣은 해시

MAC은 비밀키를 아는 사람만 계산할 수 있는 검증값이다. 공격자는 키를 모르니 메시지를 바꿔도 올바른 MAC을 만들지 못한다.

sequenceDiagram
    participant A as A (비밀키 K)
    participant B as B (비밀키 K)
    A->>A: MAC = f(K, 메시지)
    A->>B: 메시지 + MAC
    B->>B: f(K, 받은 메시지) 직접 계산
    B->>B: 받은 MAC과 비교
    Note over B: 같으면 → 변조 없음 + K를 아는 A가 보냄

HMAC: 해시 함수에 키를 안전하게 결합하는 표준 방식.

HMAC(K, m) = H( (K ⊕ opad) ‖ H( (K ⊕ ipad) ‖ m ) )

7. 해시 vs MAC vs 전자서명 비교 (★)

구분 해시 MAC / HMAC 전자서명
사용하는 키 없음 대칭(공유) 비밀키 송신자 개인키 (검증은 공개키)
무결성 ✅ (안전한 경로 필요) ✅ ✅
출처 인증 ❌ ✅ ✅
부인방지 ❌ ❌ ✅
기밀성 ❌ ❌ ❌
속도 가장 빠름 빠름 느림

8. 해시의 용도 정리

⚠️ 시험 함정

기출 포인트

확인 문제

Q1. "주어진 메시지 M에 대해 H(M) = H(M')을 만족하는 다른 메시지 M'을 찾는 것이 계산상 어려워야 한다"는 성질은?
① 역상 저항성 ② 두 번째 역상 저항성 ③ 충돌 저항성 ④ 일방향성

Q2. MAC에 대한 설명으로 옳지 않은 것은?
① 송·수신자가 비밀키를 공유한다
② 메시지 무결성을 확인할 수 있다
③ 메시지 출처를 인증할 수 있다
④ 송신자의 부인을 방지할 수 있다

Q3. 출력이 128비트인 해시 함수에서 생일 공격으로 충돌을 찾는 데 필요한 대략적인 시도 횟수는?
① 2^32 ② 2^64 ③ 2^128 ④ 2^256

Q4. 다음 중 해시 함수의 용도로 가장 거리가 먼 것은?
① 다운로드 파일의 무결성 확인 ② 비밀번호 저장 ③ 전자서명 대상 축약 ④ 메시지의 기밀성 보장

Q5. 다음 중 현재 안전한 해시 함수로 사용을 권장하기 어려운 것은?
① SHA-256 ② SHA-3 ③ SHA-1 ④ LSH


Day 6 · 전자서명 · 인증서 · PKI (그림 그리기)

1. 전자서명이란 — 디지털 인감도장

종이 계약서에 인감도장을 찍으면, 인감증명서와 대조해 "이 사람이 찍은 게 맞다"를 확인할 수 있다. 전자서명은 이걸 디지털로 옮긴 것이다.

개인키는 나만 가지고 있으므로, 서명이 맞으면 "내가 만들었다"는 걸 부정할 수 없다 → 부인방지.

2. 전자서명 생성과 검증 — 단계별

메시지 전체를 개인키로 처리하면 느리므로, 해시값에만 서명한다.

sequenceDiagram
    participant A as 송신자 A
    participant B as 수신자 B
    Note over A: [서명 생성]
    A->>A: ① h = Hash(메시지)
    A->>A: ② 서명 = Sign(A 개인키, h)
    A->>B: ③ 메시지 + 서명 전송
    Note over B: [서명 검증]
    B->>B: ④ h1 = Verify(A 공개키, 서명)
    B->>B: ⑤ h2 = Hash(받은 메시지)
    B->>B: ⑥ h1 == h2 ?
    Note over B: 같으면 위변조 없음 + A가 서명함

ASCII로 다시 보면:

[A 쪽: 생성]
 메시지 ──▶ Hash ──▶ h ──▶ (A 개인키로 서명) ──▶ 서명
   │                                              │
   └──────────────── 함께 전송 ───────────────────┘
                          │
[B 쪽: 검증]              ▼
 메시지 ──▶ Hash ──▶ h2 ─────┐
                              ├─ 비교: 같으면 OK
 서명 ──▶ (A 공개키로 검증) ─▶ h1 ┘
실제 RSA 서명은 "개인키로 암호화"인가?

교과서·시험에서는 "해시값을 개인키로 암호화한다"고 설명하는 경우가 많다. 개념 이해용으로는 맞지만, 정확히는 "개인키로 서명 연산"이다(DSA, ECDSA는 암호화와 다른 수학 구조). 시험에서는 "송신자 개인키로 서명, 송신자 공개키로 검증"만 확실히 하면 된다.

3. 전자서명이 갖춰야 할 조건

조건 의미
위조 불가 서명자(개인키 소유자)만 만들 수 있다
서명자 인증 누가 서명했는지 누구나 확인 가능
부인 방지 서명자가 나중에 서명 사실을 부인할 수 없다
변경 불가 서명된 문서 내용을 바꿀 수 없다 (바꾸면 검증 실패)
재사용 불가 한 문서의 서명을 다른 문서에 옮겨 쓸 수 없다

4. 이번 주 목표 그림: 기밀성 + 서명 동시에

A가 "B만 읽고 + A가 보낸 게 확실한" 메시지를 보내려면 둘을 합친다.

flowchart TD
    M["메시지"] --> H["해시"]
    H --> S["A 개인키로 서명"]
    M --> P["메시지 + 서명"]
    S --> P
    K["랜덤 세션키 생성"] --> E1["세션키로 메시지+서명 암호화(AES)"]
    P --> E1
    K --> E2["세션키를 B 공개키로 암호화"]
    E1 --> T["B에게 전송"]
    E2 --> T

B 쪽에서는 거꾸로:

  1. B 개인키로 세션키 복호화
  2. 세션키로 메시지 + 서명 복호화 (기밀성)
  3. A 공개키로 서명 검증 + 해시 비교 (무결성·인증·부인방지)

그런데 3번에서 쓴 "A 공개키"가 진짜 A의 것인지 어떻게 아나? 공격자가 자기 공개키를 "A 공개키"라고 속여 뿌렸다면? → 인증서와 PKI가 필요한 이유.

5. 인증서 (X.509) — 공개키의 신분증

인증서는 "이 공개키는 A의 것이 맞다" 는 내용을 믿을 수 있는 제3자(CA)가 전자서명으로 보증한 전자 문서다. 주민등록증에 정부 직인이 찍혀 있는 것과 같다.

X.509 v3 인증서 주요 필드

필드 내용 비유
버전 (Version) v1/v2/v3 (현재 대부분 v3) 양식 번호
일련번호 (Serial Number) CA가 붙인 고유 번호 (폐지 목록에서 이 번호로 식별) 신분증 번호
서명 알고리즘 CA가 서명에 쓴 알고리즘 (예: sha256WithRSAEncryption) 직인 종류
발급자 (Issuer) 발급한 CA 이름 발급 기관
유효기간 (Validity) 시작일(notBefore) ~ 만료일(notAfter) 유효기간
주체 (Subject) 인증서 주인 이름 이름
주체 공개키 정보 주인의 공개키와 알고리즘 사진
고유 식별자 (v2) 발급자/주체 고유 ID (거의 안 씀)
확장 (Extensions, v3) 키 용도, 기본 제약(CA 여부), 주체 대체 이름(SAN, 도메인 목록), CRL 배포 지점, 기관 정보 접근(AIA, OCSP 주소) 등 비고란
CA의 서명 위 내용 전체에 대한 CA의 전자서명 정부 직인
인증서에 없는 것

인증서에는 개인키가 들어 있지 않다. "인증서에 사용자 개인키가 포함된다"는 보기는 틀림. 인증서는 공개 문서다.

6. PKI (공개키 기반구조) 구성

PKI는 인증서를 발급·배포·확인·폐지하는 전체 체계다.

구성 요소 역할 비유
CA (인증기관) 인증서 발급·갱신·폐지, CRL 발행, 서명 주민센터(발급)
RA (등록기관) 신청자 신원 확인 후 CA에 발급 요청 (CA 업무 대행) 신분 확인 창구
디렉터리 / 저장소 인증서와 CRL을 보관·공개 (주로 LDAP) 공개 조회 게시판
VA (검증기관) 인증서 유효성(폐지 여부) 확인 서비스, OCSP 응답 진위 확인 콜센터
사용자 (End Entity) 인증서 신청·사용, 검증하는 쪽 시민
sequenceDiagram
    participant U as 사용자
    participant RA as RA(등록기관)
    participant CA as CA(인증기관)
    participant D as 디렉터리
    U->>RA: ① 신분 확인 + 인증서 신청(공개키 제출)
    RA->>CA: ② 확인 완료, 발급 요청
    CA->>CA: ③ 공개키+신원 정보에 CA 개인키로 서명
    CA->>U: ④ 인증서 발급
    CA->>D: ⑤ 인증서·CRL 게시

7. 인증서 체인 — 믿음의 사슬

CA도 수가 많으니, "CA를 보증하는 CA"가 있다. 맨 위 루트 CA는 자기가 자기를 서명(자체 서명)하며, 그 인증서는 브라우저·OS에 미리 내장되어 있다.

┌──────────────────────────────┐
│ 루트 CA 인증서 (자체 서명)     │ ← OS/브라우저에 미리 탑재 = 신뢰의 출발점
│ 발급자 = 주체 = Root CA       │
└──────────────┬───────────────┘
               │ 루트 CA 개인키로 서명
┌──────────────▼───────────────┐
│ 중간 CA 인증서                │
│ 발급자: Root CA / 주체: 중간 CA│
└──────────────┬───────────────┘
               │ 중간 CA 개인키로 서명
┌──────────────▼───────────────┐
│ 서버(최종 개체) 인증서         │
│ 발급자: 중간 CA / 주체: shop.com│
└──────────────────────────────┘

검증 순서 (브라우저가 shop.com 인증서를 받으면):

  1. 서버 인증서의 서명을 중간 CA 공개키로 검증
  2. 중간 CA 인증서의 서명을 루트 CA 공개키로 검증
  3. 루트 CA가 내 신뢰 저장소에 있는지 확인
  4. 각 인증서의 유효기간, 폐지 여부(CRL/OCSP), 도메인 이름 일치 확인
  5. 모두 통과하면 자물쇠 표시 🔒
국내 전자서명 제도

2020년 12월 개정 전자서명법 시행으로 "공인인증서"의 법적 우월 지위가 없어지고, 다양한 민간 전자서명(인증서)이 경쟁하는 체계가 되었다. 기존 공인인증서는 "공동인증서"로 이름이 바뀌어 쓰인다. 전자서명법은 2027~2029 출제기준에 명시된 법이므로 Week06_정보보안 관리 및 법규에서 다시 다룬다.

8. 인증서 폐지 확인 — CRL vs OCSP

유효기간이 남았어도 개인키 유출, 소속 변경, 정보 오류 등이 생기면 CA가 인증서를 폐지한다. 문제는 "폐지됐는지 어떻게 알리나"다.

구분 CRL (인증서 폐지 목록) OCSP (온라인 인증서 상태 프로토콜)
방식 CA가 폐지된 인증서 일련번호 목록을 서명해 주기적으로 게시 클라이언트가 인증서 하나의 상태를 실시간 질의
비유 분실 신분증 명단을 매주 게시판에 붙임 전화로 "이 번호 유효해요?" 물어봄
실시간성 ❌ 발행 주기 사이의 시차 존재 ✅ 실시간
부담 목록이 커지면 다운로드 부담 요청마다 서버 질의 → 서버 부하, 조회 사실 노출(프라이버시)
응답 목록 전체 good / revoked / unknown
보완 Delta CRL (변경분만) OCSP Stapling (서버가 OCSP 응답을 미리 받아 함께 제공)

⚠️ 시험 함정

기출 포인트

확인 문제

Q1. 전자서명 검증 시 수신자가 사용하는 키는?
① 수신자의 개인키 ② 수신자의 공개키 ③ 송신자의 개인키 ④ 송신자의 공개키

Q2. X.509 인증서에 포함되지 않는 정보는?
① 발급자 이름 ② 유효기간 ③ 주체의 공개키 ④ 주체의 개인키

Q3. PKI에서 인증서 신청자의 신원을 확인하고 CA에 발급을 요청하는 역할을 하는 것은?
① RA ② VA ③ 디렉터리 ④ 루트 CA

Q4. CRL과 비교한 OCSP의 특징으로 옳은 것은?
① 폐지 목록 전체를 주기적으로 내려받는다
② 인증서의 폐지 여부를 실시간으로 조회한다
③ 인증서 발급 기능을 수행한다
④ 응답 서버에 부하가 전혀 발생하지 않는다

Q5. 전자서명이 제공하는 보안 서비스가 아닌 것은?
① 무결성 ② 기밀성 ③ 부인방지 ④ 송신자 인증


Day 7 · 주간 정리

할 일

주간 요약 (아웃라인)

1. 보안 기본 개념 (Day 1)

2. 인증 (Day 2)

3. 암호 기초 (Day 3)

4. 대칭 vs 공개키 (Day 4)

5. 해시 · MAC (Day 5)

6. 전자서명 · PKI (Day 6)

미니 퀴즈 (15문항)

Q1. 해커가 웹 서버에 대량의 요청을 보내 정상 사용자가 접속하지 못하게 했다. 직접적으로 침해된 보안 요소는?
① 기밀성 ② 무결성 ③ 가용성 ④ 부인방지

Q2. 다음 중 적극적 공격이 아닌 것은?
① 메시지 변조 ② 재전송 ③ 위장(위조) ④ 도청

Q3. "명시적으로 허용되지 않은 접근은 모두 거부한다"는 원칙은?
① 심층 방어 ② Fail-safe 기본값 ③ 직무 순환 ④ 개방 설계

Q4. 다음 중 서로 다른 인증 유형의 조합이 아닌 것은?
① 보안카드 + 비밀번호 ② 지문 + OTP 토큰 ③ 서명 패턴 + 키 입력(타자) 리듬 ④ 홍채 + PIN

Q5. 생체인증 시스템 A의 CER은 2%, B의 CER은 5%이다. 옳은 설명은?
① B가 더 정확하다 ② A가 더 정확하다 ③ A의 FAR은 항상 0%이다 ④ CER로는 비교할 수 없다

Q6. 혼돈(Confusion)에 대한 설명으로 옳은 것은?
① 평문 1비트 변화가 암호문 전체에 퍼지게 한다
② 키와 암호문 사이의 관계를 복잡하게 만든다
③ 주로 전치(순열)로 구현한다
④ 알고리즘을 비공개로 하는 원칙이다

Q7. 공격자가 가진 정보가 가장 많은(공격자에게 가장 유리한) 공격 모델은?
① 암호문 단독 공격 ② 기지 평문 공격 ③ 선택 평문 공격 ④ 선택 암호문 공격

Q8. 50명이 대칭키로 서로 1:1 통신할 때 필요한 키 개수는?
① 100 ② 1,225 ③ 2,450 ④ 2,500

Q9. 공개키 암호에 대한 설명으로 옳지 않은 것은?
① 대칭키 암호보다 처리 속도가 느리다
② 키 분배 문제를 해결하는 데 활용된다
③ 공개키로부터 개인키를 쉽게 계산할 수 있다
④ 전자서명에 활용된다

Q10. Diffie-Hellman 알고리즘의 주된 용도는?
① 대용량 데이터 암호화 ② 키 교환(합의) ③ 해시값 생성 ④ 인증서 폐지 확인

Q11. "공격자가 아무 두 입력을 자유롭게 골라서 같은 해시값이 나오게 하는 것이 어려워야 한다"는 성질은?
① 역상 저항성 ② 두 번째 역상 저항성 ③ 충돌 저항성 ④ 쇄도 효과

Q12. HMAC이 제공하는 보안 서비스로 옳은 것만 고른 것은?
① 기밀성, 무결성 ② 무결성, 메시지 인증 ③ 메시지 인증, 부인방지 ④ 기밀성, 부인방지

Q13. 인증서를 발급할 때 CA가 인증서에 서명하는 데 사용하는 키는?
① 사용자의 개인키 ② 사용자의 공개키 ③ CA의 개인키 ④ CA의 공개키

Q14. 인증서 체인 검증에 대한 설명으로 옳지 않은 것은?
① 루트 CA 인증서는 자체 서명되어 있다
② 서버 인증서의 서명은 발급한 중간 CA의 공개키로 검증한다
③ 루트 CA 인증서는 브라우저·OS의 신뢰 저장소에 미리 들어 있다
④ 서버 인증서가 유효하면 상위 CA 인증서는 확인하지 않아도 된다

Q15. 다음 중 CRL의 단점으로 가장 적절한 것은?
① 인증서 발급이 불가능하다
② 발행 주기 사이에 폐지된 인증서를 즉시 반영하지 못한다
③ 인증서 하나마다 실시간 질의가 필요하다
④ CA의 서명이 없어 위조가 쉽다

카드

오답 / 모르는 용어


네비게이션

이전 다음
◀ Week02_운영체제 기초 Week04_웹 기초와 보안관리 입문 ▶